#ifndef WOLF_H
#define WOLF_H



#include "Entity/BaseEntity.h"
#include "FSM/StateMachine.h"
#include "wolf_states.h"
#include "Messaging/Telegram.h"
#include <iostream>
using namespace std;



class Wolf : public BaseEntity {
public:
	Wolf(int p_id) :
		BaseEntity(p_id),
		m_energy(30)
	{
		m_stateMachine = new StateMachine<Wolf>(this);
		m_stateMachine->setCurrentState(new State_WolfRest());
		cout << "Wolf created with ID =" << this->getID() << endl;
	}

	virtual bool handleMessage(const Telegram& p_t) {
		m_stateMachine->handleMessage(p_t);
		return true;
	}

	virtual void update() {
		m_stateMachine->update();
	}



	StateMachine<Wolf>* m_stateMachine;
	int m_energy;
};



#endif